import { Module, Global } from '@nestjs/common';
import { LanguageService } from './language.service';
import { ILanguageService } from './language.interface';

/**
 * 语言模块
 * 符合NestJS规范的多语言支持
 * 
 * 功能:
 * 1. 多语言支持 (API消息、字典数据、验证器消息)
 * 2. 模块化语言包 (按模块、类型、语言组织)
 * 3. 热重载支持 (开发环境)
 * 
 * 使用方式:
 * 1. 在需要多语言的模块中导入
 * 2. 通过依赖注入使用ILanguageService接口
 * 3. 配合ValidationExceptionFilter处理多语言验证错误
 */
@Global()
@Module({
  providers: [
    {
      provide: 'ILanguageService',
      useClass: LanguageService,
    },
  ],
  exports: ['ILanguageService'],
})
export class LanguageModule {}
